/*--------------------------------------------------------------------------
REG52.H,For C++ used

Header file for SM59D04G2 microcontroller.
Copyright (c) 1988-1999 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/

/*  BYTE Registers  */
sfr P0    = 0x80;
sfr P1    = 0x90;
sfr P2    = 0x0A0;
sfr P3    = 0x0B0;
sfr P4	  = 0x0D8;
sfr PSW   = 0x0D0;
sfr ACC   = 0x0E0;
sfr B     = 0x0F0;
sfr SP    = 0x81;
sfr DPL   = 0x82;
sfr DPH   = 0x83;
sfr DPL1  = 0x84;
sfr DPH1  = 0x85;
sfr DPS   = 0x86;
sfr PCON  = 0x87;
sfr TCON  = 0x88;
sfr TMOD  = 0x89;
sfr TL0   = 0x8A;
sfr TL1   = 0x8B;
sfr TH0   = 0x8C;
sfr TH1   = 0x8D;
sfr WDTC  = 0x8E;
sfr WDTK  = 0x8F;
sfr SCON  = 0x98;
sfr SBUF  = 0x99;
sfr IE    = 0x0A8;
sfr IE1   = 0x0A9;
sfr IP    = 0x0B8;
sfr IP1   = 0x0B9;

/*  Compare/Capture channel 0~4 & control register  */
sfr CC0DH = 0x9C;
sfr CC0DL = 0x9D;
sfr CC1DH = 0x9E;
sfr CC1DL = 0x9F;
sfr CC2DH = 0x91;
sfr CC2DL = 0x92;
sfr CC3DH = 0x93;
sfr CC3DL = 0x94;
sfr CC4DH = 0x95;
sfr CC4DL = 0x96;
sfr CC0CON = 0x0A3;
sfr CC1CON = 0x0A4;
sfr CC2CON = 0x0A5;
sfr CC3CON = 0x0A6;
sfr CC4CON = 0x0A7;

/*  PCA counter & control register  */
sfr PCACH = 0x9A;
sfr PCACL = 0x9B;
sfr PCAC1 = 0x0A1;
sfr PCAC2 = 0x0A2;

/*  KBI  */
sfr KBLS  = 0x0FD;
sfr KBE   = 0x0FE;	 	 
sfr KBF   = 0x0FF;

/*ISP SFR */
sfr SCONF = 0x0BF;
sfr ISPFAH= 0x0F4;
sfr ISPFAL= 0x0F5;
sfr ISPFD = 0x0F6;
sfr ISPC  = 0x0F7;

/*  8052 Extensions  */
sfr T2CON  = 0x0C8;
sfr T2MOD  = 0x0C9;
sfr RCAP2L = 0x0CA;
sfr RCAP2H = 0x0CB;
sfr TL2    = 0x0CC;
sfr TH2    = 0x0CD;

/*  BIT Registers  */
sbit    P0_0 = 0x80;
sbit    P0_1 = 0x81;
sbit    P0_2 = 0x82;
sbit    P0_3 = 0x83;
sbit    P0_4 = 0x84;
sbit    P0_5 = 0x85;
sbit    P0_6 = 0x86;
sbit    P0_7 = 0x87;
sbit    P1_0 = 0x90;
sbit    P1_1 = 0x91;
sbit    P1_2 = 0x92;
sbit    P1_3 = 0x93;
sbit    P1_4 = 0x94;
sbit    P1_5 = 0x95;
sbit    P1_6 = 0x96;
sbit    P1_7 = 0x97;
sbit    P2_0 = 0x0A0;
sbit    P2_1 = 0x0A1;
sbit    P2_2 = 0x0A2;
sbit    P2_3 = 0x0A3;
sbit    P2_4 = 0x0A4;
sbit    P2_5 = 0x0A5;
sbit    P2_6 = 0x0A6;
sbit    P2_7 = 0x0A7;
sbit    P3_0 = 0x0B0;
sbit    P3_1 = 0x0B1;
sbit    P3_2 = 0x0B2;
sbit    P3_3 = 0x0B3;
sbit    P3_4 = 0x0B4;
sbit    p3_5 = 0x0B5;
sbit    P3_6 = 0x0B6;
sbit    P3_7 = 0x0B7;
sbit    P4_0 = 0x0D8;
sbit    P4_1 = 0x0D9;
sbit    P4_2 = 0x0DA;
sbit    P4_3 = 0x0DB;

/*  PSW  */
sbit	CY    = PSW^7;
sbit	AC    = PSW^6;
sbit	F0    = PSW^5;
sbit	RS1   = PSW^4;
sbit	RS0   = PSW^3;
sbit	OV    = PSW^2;
sbit 	P     = PSW^0; //8052 only

/*  TCON  */
sbit	TF1   = TCON^7;
sbit 	TR1   = TCON^6;
sbit 	TF0   = TCON^5;
sbit 	TR0   = TCON^4;
sbit 	TCON_IE1   = TCON^3;
sbit 	IT1   = TCON^2;
sbit 	IE0   = TCON^1;
sbit 	IT0   = TCON^0;


/*  IE  */
sbit 	EA    = IE^7;
sbit 	ET2   = IE^5; //8052 only
sbit 	ES    = IE^4;
sbit 	ET1   = IE^3;
sbit 	EX1   = IE^2;
sbit 	ET0   = IE^1;
sbit 	EX0   = IE^0;

/*  IP  */
sbit 	PT2   = IP^5;
sbit 	PS    = IP^4;
sbit 	PT1   = IP^3;
sbit 	PX1   = IP^2;
sbit 	PT0   = IP^1;
sbit 	PX0   = IP^0;

/*  P1  */
sbit 	T2EX  = P1^1; // 8052 only
sbit 	T2    = P1^0; // 8052 only

/*  P3  */
sbit 	RD    = P3^7;
sbit 	WR    = P3^6;
sbit 	T1    = P3^5;
sbit 	T0    = P3^4;
sbit 	INT1  = P3^3;
sbit 	INT0  = P3^2;
sbit 	TXD   = P3^1;
sbit 	RXD   = P3^0;

/*  SCON  */
sbit 	SM0   = SCON^7;
sbit 	SM1   = SCON^6;
sbit 	SM2   = SCON^5;
sbit 	REN   = SCON^4;
sbit 	TB8   = SCON^3;
sbit 	RB8   = SCON^2;
sbit 	TI    = SCON^1;
sbit 	RI    = SCON^0;
          
/*  T2CON  */
sbit 	TF2    = T2CON^7;
sbit 	EXF2   = T2CON^6;
sbit 	RCLK   = T2CON^5;
sbit 	TCLK   = T2CON^4;
sbit 	EXEN2  = T2CON^3;
sbit 	TR2    = T2CON^2;
sbit 	C_T2   = T2CON^1;
sbit 	CP_RL2 = T2CON^0;



